home *** CD-ROM | disk | FTP | other *** search
- signature lib_queue_sig =
- sig
- pred empty/1 and enter/3 and remove/2 and rest/2 and isempty/1.
- end.
-
- structure lib_queue/lib_queue_sig =
- struct
- fun queue/1.
- empty(queue([])).
- enter(Item,queue(Q),queue([Item|Q])).
- remove(queue([Item]),Item).
- remove(queue([_|Q]),Item) :-
- remove(queue(Q),Item).
- rest(queue([Item]),queue([])).
- rest(queue([Item|Q]),queue([Item|Rest])) :-
- rest(queue(Q),queue(Rest)).
- isempty(queue([])).
- end.
-